#pragma once

#include "QSPrerequisites.h"
#include "QSSystems.h"

namespace QS
{	
	class CEGUISystem : public GuiSystem, public EventListener
	{
	public:
		CEGUISystem(Engine* e) : GuiSystem(e){}
		virtual ~CEGUISystem();

		virtual void initialize();
		virtual void shutdown();
		virtual void update();
	
		virtual void printToConsole(const String& message);

		virtual void processEvent(const Event&);
	private:
		//Controls for the debug console
		CEGUI::MultiLineEditbox* mHistory;
		CEGUI::PushButton* mSubmit;
		CEGUI::Editbox* mTextBox;

		//event handlers for the debug console
		bool keyDown(const CEGUI::EventArgs& a);
		bool submitButtonClicked(const CEGUI::EventArgs&);
	};
}